Controlling digital video bandwidth utilization with a virtualized communication hub

ABSTRACT

Example methods, apparatus, systems and articles of manufacture (e.g., physical storage media) to control digital video bandwidth utilization with a virtualized communication hub are disclosed. Example methods disclosed herein include monitoring, with a virtual access function of the virtualized communication hub, an aggregate load on a broadband access medium to detect bandwidth utilization events. Disclosed example methods also include sending, from the virtual access function, a first notification message to a virtual set-top box of the virtualized communication hub in response to detecting a first bandwidth utilization event. Disclosed example methods further include adjusting, at the virtual set-top box and based on the first notification message, an output bandwidth for streaming digital media from the virtual set-top box to a physical set-top box via a broadband access medium.

RELATED APPLICATION(S)

This patent arises from a continuation of U.S. patent application Ser.No. 15/476,096 (now U.S. Pat. No. ______), which is titled “CONTROLLINGDIGITAL VIDEO BANDWIDTH UTILIZATION WITH A VIRTUALIZED COMMUNICATIONHUB,” and which was filed on Mar. 31, 2017. Priority to U.S. patentapplication Ser. No. 15/476,096 is claimed. U.S. patent application Ser.No. 15/476,096 is hereby incorporated herein by reference in itsentirety.

FIELD OF THE DISCLOSURE

This disclosure relates generally to digital video transmission and,more particularly, to controlling digital video bandwidth utilizationwith a virtualized communication hub.

BACKGROUND

In broadband service provider networks, such as cable and fiber opticbroadband networks, the streaming of nonlinear digital video, such asdigital video provided by a video-on-demand (VOD) service, a digitalvideo recorder (DVR), service, etc., induces extra network load. Forexample, such network load can be in the form of increased bandwidthutilization on the broadband access medium (e.g., the cable accessmedium, the fiber optic access medium, etc.). Increased bandwidthutilization can become especially problematic for smart subscribersites, such as smart subscriber residences, with multiple media devicescapable of streaming digital video simultaneously. When bandwidthutilization on the broadband access medium reaches the point ofcongestion, digital video streaming may suffer packet loss, resulting inquality of service degradation and an associated poor subscriberexperience.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an example digital video communicationsystem including an example virtualized communication hub structured tocontrol digital video bandwidth utilization in accordance with theteachings of this disclosure.

FIG. 2 is a block diagram of an example virtual set-top box implementedin the example virtualized communication hub of FIG. 1.

FIG. 3 is a block diagram of an example virtual access functionimplemented in the example virtualized communication hub of FIG. 1.

FIG. 4 is an example message sequence diagram illustrating examplemessages exchanged between elements of the example virtualizedcommunication hub of FIG. 1 to control digital video bandwidthutilization in accordance with the teachings of this disclosure.

FIG. 5 illustrates an example of digital video bandwidth utilizationbeing varied by the illustrated example virtualized communication hub inthe example digital video communication system of FIG. 1 in accordancewith the teachings of this disclosure.

FIGS. 6-7 are flowchart representative of example computer readableinstructions that may be executed to implement the example virtualset-top box of FIG. 2 and the example virtual access function of FIG. 3in the example virtualized communication hub of FIG. 1.

FIG. 8 is a flowchart representative of example computer readableinstructions that may be executed to implement load monitoring by theexample virtual access function of FIG. 3.

FIG. 9 is a flowchart representative of example computer readableinstructions that may be executed to implement bandwidth adjustmentprocessing by the example virtual set-top box of FIG. 2.

FIG. 10 is a block diagram of an example processor platform structuredto execute the example computer readable instructions of FIGS. 6-8and/or 9 to implement the example virtualized communication hub of FIGS.1-5.

The figures are not to scale. Wherever possible, the same referencenumbers will be used throughout the drawing(s) and accompanying writtendescription to refer to the same or like parts, elements, etc.

DETAILED DESCRIPTION

Example methods, apparatus, systems and articles of manufacture (e.g.,physical storage media) to control digital video bandwidth utilizationwith a virtualized communication hub are disclosed herein. Examplemethods disclosed herein to control digital video bandwidth utilizationwith a virtualized communication hub implemented by a server clusterinclude monitoring, with a virtual access function of the virtualizedcommunication hub, an aggregate load on a broadband access medium todetect bandwidth utilization events. Disclosed example methods alsoinclude sending, from the virtual access function, a first notificationmessage to a virtual set-top box of the virtualized communication hub inresponse to detecting a first bandwidth utilization event. Disclosedexample methods further include adjusting, at the virtual set-top boxand based on the first notification message, an output bandwidth forstreaming digital media from the virtual set-top box to a physicalset-top box via a broadband access medium. In some such disclosedexample methods, the virtual set-top box is to adjust the outputbandwidth for streaming the digital media based on the firstnotification message and a profile of a subscriber associated with thevirtual set-top box.

Some disclosed example methods also include registering the virtualset-top box with the virtual access function to permit the virtualset-top box to receive notification messages. For example, suchregistering can be performed in response to an access request messagereceived by the virtual access function from the virtual set-top boxprior to the first notification message being sent.

Additionally or alternatively, some disclosed example methods includereserving resources of the broadband access medium for use by thevirtual set-top box to stream the digital media in response to areservation request received from the virtual set-top box after thefirst notification message being sent. Furthermore, in some suchdisclosed example methods include, in response to detecting a secondbandwidth utilization event: (i) adjusting the resources of thebroadband access medium reserved for use by the virtual set-top box tostream the digital media; and (ii) sending a second notification messagefrom the virtual access function to the virtual set-top box, the virtualset-top box to further adjust the output bandwidth for streaming thedigital media based on the second notification message.

Additionally or alternatively, in some disclosed example methods, themonitoring of the aggregate load with the virtual access functionincludes comparing the monitored aggregate load to a first bandwidthutilization threshold, and detecting the first bandwidth utilizationevent when the monitored aggregate load increases to reach the firstbandwidth utilization threshold. In such examples, the first bandwidthutilization event is associated with the monitored aggregate load havingreached the first bandwidth utilization threshold. In some suchdisclosed example methods, the first notification message indicates themonitored aggregate load has reached the first bandwidth utilizationthreshold, and the adjusting of the output bandwidth at the virtualset-top box includes controlling a transcoder of the virtual set-top boxto encode a data stream for streaming the digital video with a secondarycodec associated with a lower bandwidth than a primary codec of thevirtual set-top box to reduce the output bandwidth for streaming thedigital media.

Additionally or alternatively, in some disclosed example methods, themonitoring of the aggregate load with the virtual access functionincludes comparing the monitored aggregate load to a second bandwidthutilization threshold lower than the first bandwidth utilizationthreshold, and detecting a second bandwidth utilization event when themonitored aggregate load decreases to reach the second bandwidthutilization threshold. In such examples, the second bandwidthutilization event is associated with the monitored aggregate load havingreached the second bandwidth utilization threshold. Some such disclosedexample methods further include, in response to detecting the secondbandwidth utilization event: (i) sending a second notification messagefrom the virtual access function to the virtual set-top box, with thesecond notification message indicating the monitored aggregate load hasreached the second bandwidth utilization threshold; and (ii)controlling, at the virtual set-top box in response to receiving thesecond notification message, the transcoder to switch from the secondarycodec to the primary codec to encode the data stream for streaming thedigital media.

Additionally or alternatively, in some disclosed example methods, themonitoring of the aggregate load with the virtual access functionincludes comparing the monitored aggregate load to a third bandwidthutilization threshold higher than the first bandwidth utilizationthreshold, and detecting a third bandwidth utilization event when themonitored aggregate load increases to reach the third bandwidthutilization threshold. In such examples, the third bandwidth utilizationevent is associated with the monitored aggregate load having reached thethird bandwidth utilization threshold. Some such disclosed examplemethods further include, in response to detecting the third bandwidthutilization event: (i) sending a third notification message from thevirtual access function to the virtual set-top box, with the thirdnotification message indicating the monitored aggregate load has reachedthe third bandwidth utilization threshold; and (ii) controlling, at thevirtual set-top box in response to receiving the third notificationmessage, the transcoder to encode the data stream for streaming thedigital media with a tertiary codec associated with a lower bandwidththan the secondary codec to further reduce the output bandwidth forstreaming the digital media.

Additionally or alternatively, in some disclosed example methods, themonitoring of the aggregate load with the virtual access functionincludes comparing the monitored aggregate load to a fourth bandwidthutilization threshold lower than the third bandwidth utilizationthreshold but higher than the first bandwidth utilization threshold, anddetecting a fourth bandwidth utilization event when the monitoredaggregate load decreases to reach the fourth bandwidth utilizationthreshold. In such examples, the fourth bandwidth utilization event isassociated with the monitored aggregate load having reached the fourthbandwidth utilization threshold. Some such disclosed example methodsfurther include, in response to detecting the fourth bandwidthutilization event: (i) sending a fourth notification message from thevirtual access function to the virtual set-top box, the fourthnotification message indicating the monitored aggregate load has reachedthe fourth bandwidth utilization threshold; and (ii) controlling, at thevirtual set-top box in response to receiving the fourth notificationmessage, the transcoder to switch from the tertiary codec to thesecondary codec to encode the data stream for streaming the digitalmedia.

These and other example methods, apparatus, systems and articles ofmanufacture (e.g., physical storage media) to control digital videobandwidth utilization with a virtualized communication hub are disclosedin further detail below.

In broadband service provider networks, such as cable and fiber opticbroadband networks, the broadband access medium is shared by multiplesubscribers. As such, the traffic load of one subscriber may affect thetraffic loads of other subscribers. For economic reasons, a provideroften substantially oversubscribes its broadband service providernetworks, with the assumption that only a relatively small fraction ofsubscribers will utilize the network at any given time. For many typesof network traffic, such oversubscription does not lead to quality ofservice or user experience issues.

However, streaming of nonlinear digital video, such as digital videoprovided by a VOD service, a DVR service, etc., in broadband serviceprovider networks can induce substantial extra network load, such asincreased bandwidth utilization on the broadband access medium. Whenbandwidth utilization on the broadband access medium reaches the pointof congestion, digital video streaming may suffer packet loss, resultingin quality of service degradation and an associated poor subscriberexperience. Prior corrective measures employed in broadband serviceprovider networks are either non-existent, or include controlleddropping of packets, which still results in a degraded subscriberexperience, and/or reactive requests driven by the consumer premisesequipment (CPE), such as the subscriber's set-top box (STB), totranscode the digital video stream using a codec that consumes lessbandwidth. However, the latter technique also has disadvantages. Forexample, CPE reactive requests are driven by detection of packet loss(and/or a streaming underrun) and, thus, are still susceptible to a poorsubscriber experience due to packet loss, at least during the transitionperiod from when packet loss is detected to when the CPE request isacted upon to vary the transcoding to reduce bandwidth utilization andmitigate the congestion. CPE reactive requests are also local decisionswith little to no centralized control. As such, a decision made by theCPE of one subscriber may affect the bandwidth available to anothervideo stream for a different subscriber such that the other video streamsuffers degraded quality of service, which results in a poorer overallsubscriber experience.

Unlike such prior corrective measures for mitigating congestion ofbroadband service provider networks, example methods, apparatus, systemsand articles of manufacture (e.g., physical storage media) disclosedherein leverage modern network architectures built upon a virtualizedcommunication hub to provide centralized, proactive control of digitalvideo bandwidth utilization. As described in further detail below, avirtualized communication hub is a cluster of servers in a virtualizedservice provider network that implement network functions, such asvirtual network access functions and virtual STBs, by applying softwaredefined networking (SDN) and network function virtualization (NFV)concepts. In such a virtualized environment, a subscriber's STB includesa physical STB (pSTB), which is a physical element located at thesubscriber site (e.g., the subscriber's premises), and a virtual STB(vSTB) located at (e.g., implemented by) the virtualized communicationhub. As disclosed in further detail below, the vSTB in such virtualizedenvironments is responsible for implementing video processingfunctionality, such as a transcoder and a cloud DVR.

Examples disclosed herein leverage the centralized location of thevirtual access function and vSTBs in the virtualized communication hubto control digital video bandwidth utilization to better manage networkcongestion and apply corrective measures in advance, possibly before anydegradation in quality of service or subscriber experience occurs. Insome disclosed examples of controlling digital video bandwidthutilization, an example virtualized communication hub implements anexample virtualized access function to provide subscribers registeredwith a given access network of a given broadband service providernetwork with access to that broadband network. The example virtualizedcommunication hub also implements vSTBs for the respective registeredsubscribers. In some such examples, the virtualized access functionmonitors the aggregate downstream load in the network caused by thecombination of the digital video streams being transmitted by the vSTBsto the different subscribers registered with the access network. Thevirtualized access function performs such aggregate load monitoring todetermine whether the monitored load increases or decreases to reach (orcross) a given bandwidth utilization threshold (of one or more possiblethresholds). When the given threshold is reached, and depending on theparticular threshold that is reached and whether the monitored load isincreasing or decreasing, the virtualized access function sends acorresponding notification message to the vSTBs registered with thegiven access network to signal that an associated bandwidth utilizationevent corresponding to the particular threshold has occurred. Thesignaled vSTBs then adjust their respective transcoders to, for example,select appropriate codecs (e.g., based on respective subscriberprofiles) to increase or decrease their respective output bandwidths forstreaming media. In this way, example techniques disclosed herein tocontrol digital video bandwidth utilization are able to adjust theaggregate access network loads to proactively avoid, or at leastmitigate, congestion in broadband service provider networks.

Turning to the figures, a block diagram of an example digital videocommunication system 100 including an example virtualized communicationhub 105 structured to control digital video bandwidth utilization inaccordance with the teachings of this disclosure is illustrated inFIG. 1. In the illustrated example of FIG. 1, the digital videocommunication system 100 corresponds to an example broadband serviceprovider network, such as, but not limited to, a cable and/or fiberoptic broadband network. However, the examples of controlling digitalvideo bandwidth utilization disclosed herein are not limited thereto,but may be used with any digital video communication system employing avirtualized communication hub or similar technology to providecentralized network access and set-top box functionality, and/or similarfunctionality to provide and manage transmission (e.g., streaming) ofdigital video.

In the illustrated example of FIG. 1, the virtualized communication hub105 is a cluster of servers in the example digital video communicationsystem 100 (e.g., a virtualized service provider network 100) thatimplement network functions by applying SDN and NFV concepts. Forexample, the virtualized communication hub 105 includes (e.g.,implements) an example virtual network access function (vAF) 110 toprovide example subscribers 115 registered with a given access networkof the digital video communication system 100 (e.g., the broadbandservice provider network) with access to the system via an examplebroadband access medium 120. For example, if the broadband access medium120 includes or is otherwise implemented by a cable-based medium, thevAF 110 can implement an example virtual converged cable access platform(vCCAP) to provide one or more of the subscribers 115 with access to thesystem/network. Additionally or alternatively, in examples in which thebroadband access medium 120 includes or is otherwise implemented by afiber-based medium, the vAF 110 can implement an example virtual opticalline terminal (vOLT) to provide one or more of the subscribers 115 withaccess to the system/network

The example virtualized communication hub 105 of FIG. 1 also includes(e.g., implements) example vSTBs 125 to provide the example subscribers115 with set-top box functionality to receive digital video in thesystem 100. In the illustrated example of FIG. 1, the system 100provides set-top box functionality to a given subscriber 115 through anexample vSTB 125 implemented in the virtualized communication hub 105and an example pSTB 130 located at the subscriber site (e.g., subscriberpremises). In some examples, the pSTB 130 for a given subscriber 115 insuch a virtualized environment provides a physical interface between thebroadband access medium 120 and the subscriber's media presentationdevice(s), such as a television and/or other media device, as well as auser interface to access (e.g., stream) video and/or access otherfeatures provided by the example system 100. In some examples, the pSTB130 is integrated in or otherwise implemented by the subscriber's mediapresentation device. For example, functionality associated with theexample pSTB 130 of FIG. 1 can be implemented by one or more softwaremodules executed by a smart television or other display device, apersonal computer, etc. In some examples, the pSTB 130 is implemented byone or more devices separate from the subscriber's media presentationdevice. For example, functionality associated with the example pSTB 130of FIG. 1 can be implemented by a set-top box device separate from butcommunicatively coupled to the subscriber's media presentation device(e.g., via a high-definition multimedia interface (HDMI) cable, acoaxial cable, a wireless connection, etc.), a digital video recorder(DVR) device separate from but communicatively coupled to thesubscriber's media presentation device (e.g., via an HDMI cable, acoaxial cable, a wireless connection, etc.), a digital versatile disk(DVD) player separate from but communicatively coupled to thesubscriber's media presentation device (e.g., via an HDMI cable, acoaxial cable, a wireless connection, etc.), a gaming console separatefrom but communicatively coupled to the subscriber's media presentationdevice (e.g., via an HDMI cable, a coaxial cable, a wireless connection,etc.), etc. In some examples, the pSTB 130 is implemented by acombination of functionality provided by the subscriber's mediapresentation device and functionality provided by one or more externaldevices, such as, but not limited to, a set-top box device, a DVRdevice, a DVD player, a gaming console, etc.

In some examples, the vSTB 125 for a given subscriber 115 in such avirtualized environment is responsible for implementing video processingfunctionality, such as a transcoder and a cloud DVR, to provide digitalvideo to the subscriber's pSTB 130 via the broadband access medium 120.For example, the vSTB 125 included in the virtualized communication hub105 for a given subscriber 115 implements a transcoder capable ofchanging the encoding of a digital video stream to be sent to thesubscriber's pSTB 130. In some examples, the transcoder of the vSTB 125selects one of several available codecs associated with different outputbandwidths for encoding the digital video stream. (In some examples,different ones of the codecs may implement different encoding algorithmsto support pSTBs 120 having different decoding capabilities.) Byselecting among the different available codecs, the transcoder of thevSTB 125 can vary the bandwidth of the broadband access medium 120utilized by the vSTB 125 to stream digital video to the subscriber'spSTB 130 to thereby adjust the aggregate load in the system 100.

In some examples, the transcoder of the vSTB 125 bases its codecselection on a subscriber profile retrieved by the vSTB 125 from anexample virtual account manager (vAM) 135 implemented by or otherwiseincluded in the virtualized communication hub 105. In the illustratedexample, the vAM 135 stores and maintains profiles and other accountinformation associated with the respective subscribers 115. Examplesubscriber profiles specify, among other things, characteristics of theservices to which the respective subscribers 115 have subscribed. Forexample, the subscriber profiles may specify a target quality of service(QoS) for digital video streamed to the respective subscribers 115. Insome such examples, the transcoder of the vSTB 125 for a givensubscriber 115 may limit/restrict its codec selection to a subset ofavailable codecs capable of meeting the QoS targets specified in thesubscriber's profile retrieved by the vSTB 125 from the vAM 135.

In some examples, the vSTB 125 included in the virtualized communicationhub 105 for a given subscriber 115 implements a cloud DVR for thesubscriber. In some such examples, the cloud DVR of the vSTB 125 for agiven subscriber 115 provides functionality to record, store and playback video content for the subscriber, with the storage and DVRfunctions being implemented by the virtualized communication hub 105.The subscriber is able to control the DVR functionality via a userinterface implemented by the subscriber's pSTB 130.

In the illustrated example of FIG. 1, the vAF 110 and the vSTBs 125implemented by the virtualized communication hub 105 collaborate tocontrol digital video bandwidth utilization of the broadband accessmedium 120 in accordance with the teachings of this disclosure. Forexample, the vAF 110 monitors the aggregate downstream load on thebroadband access medium 120 of the system 100 (and/or anywhere else inthe system 100, such as within the virtualized communication hub 105)caused by the combination of the digital video streams being transmittedby the vSTBs 125 to the different subscribers 115 registered with theaccess network served by the vAF 110. The vAF 110 performs suchaggregate load monitoring to determine whether the monitored loadincreases or decreases to reach (or cross) a given bandwidth utilizationthreshold (of one or more possible thresholds). When the given thresholdis reached, and depending on the particular threshold that is reachedand whether the monitored load is increasing or decreasing, the vAF 110sends a corresponding notification message to the vSTBs 125 registeredwith the vAF 110, which signals that an associated bandwidth utilizationevent corresponding to the particular threshold has occurred. Inresponse to the notification message, the signaled vSTBs 125 adjusttheir respective transcoders to, for example, select appropriate codecs(e.g., based on respective subscriber profiles retrieved form the vAM135) to increase or decrease their respective output bandwidths forstreaming media. In this way, the example vAF 110, in conjunction withthe vSTBs 125, control digital video bandwidth utilization on thebroadband access medium 120 in the aggregate to proactively avoid, or atleast mitigate, congestion in the example digital video communicationsystem 100.

A block diagram of an example implementation of the vAF 110 of FIG. 1 isillustrated in FIG. 2. The example vAF 110 of FIG. 2 includes exampleaccess point functions 205, which include SDN/NFV elements relied uponby the vAF 110 to provide registered subscribers 115 with access to thedigital video communication system 100 (e.g., which may be a virtualizedservice provider network 100). For example, the access point functions205 can include, but are not limited to, SDN/NFV elements structured toimplement one or more of a vCCAP, an OLT, routers, bridges, switches,etc., and/or any combination thereof.

To control digital video bandwidth utilization in the system 100 inaccordance with the teachings of this disclosure, the example vAF 110 ofFIG. 2 also includes an example bandwidth controller 210, which furtherincludes an example load monitor 215, an example load event notifier 220and an example resource registrar 225. The example load monitor 215monitors the aggregate downstream load on the broadband access medium120 of the system 100 (and/or anywhere else in the system 100, such aswithin the virtualized communication hub 105). In some examples, theload monitor 215 monitors (e.g., continuously, periodically at a givenmeasurement interval, based on occurrence of one or more events, etc.,and/or any combination thereof) the aggregate downstream load bydetermining the bandwidths (or data rates) of the respective digitalvideo streams being transmitted by the vSTBs 125 to the differentsubscribers 115 registered with the access network served by the vAF110. The load monitor 215 then sum/accumulates or otherwise combines thebandwidths (or data rates) of the respective digital video streams todetermine the aggregate downstream load.

The example load event notifier 220 evaluates the aggregate downstreamload monitored by the load monitor 215 to determine whether thedownstream load has reached (or crossed) a given bandwidth utilizationthreshold (of one or more possible thresholds). When a given bandwidthutilization threshold is reached (or crossed), the example load eventnotifier 220 also determines whether the aggregate downstream load wasincreasing or decreasing. Then, based on the particular bandwidthutilization threshold, and whether the aggregate downstream load wasincreasing or decreasing when the threshold was reached (or crossed),the example load event notifier 220 sends a corresponding notificationmessage to the vSTBs 125 registered with the vAF 110. The notificationmessage informs the vSTBs 125 that a bandwidth utilization eventcorresponding to the aggregate downstream load reaching the particularbandwidth utilization threshold has occurred. Examples of bandwidthutilization thresholds used by the load event notifier 220 andassociated bandwidth utilization events corresponding to thesethresholds are illustrated in FIG. 5, which is described in furtherdetail below. In some examples, the load event notifier 220 is alsoresponsible for registering vSTBs 125 to receive the eventnotifications.

The example resource registrar 225 reserves resources on the broadbandaccess medium 120 of the system 100 (and/or anywhere else in the system100, such as within the virtualized communication hub 105) for use byregistered vSTBs 125 to stream digital video. For example, in responseto a reservation request received from a particular one of the vSTBs125, the resource registrar 225 can reserve a portion of the downstreambandwidth of the broadband access medium 120 for use by the requestingvSTBs 125 to stream digital video. In some examples, the amount ofreserved resources is based on the evaluation of the aggregatedownstream load performed by the load event notifier 220. For example, arequesting vSTB 125 can vary the amount of resources (e.g., bandwidth)specified in its reservation request to correspond to its current codecselection, which is made based on the notification messages receivedfrom the example load event notifier 220. In some examples, the resourceregistrar 225 further supports resource negotiation to allow theresource registrar 225 and the requesting vSTB 125 to iteratively settleon the amount of resources (e.g., bandwidth) to be reserved for thatvSTB 125.

A block diagram of an example implementation of the vSTB 125 of FIG. 1is illustrated in FIG. 3. The example vSTB 125 of FIG. 3 includes, amongother STB functionality not shown, an example cloud DVR 305 to record,store and play back video content for a subscriber 115. The examplecloud DVR 305 also implements DVR control features, such as start, stop,pause, fast forward, rewind, scheduled recording, etc. In some examples,such features are invoked by commands entered by the subscriber 115 viathe subscriber's pSTB 130.

The example vSTB 125 of FIG. 3 also includes an example transcoder 310capable of changing the encoding of a digital video stream to be sent tothe subscriber's pSTB 130 associated with the vSTB 125. In theillustrated example, the transcoder 310 implements several availablecodecs associated with different output bandwidths (e.g., data rates)for encoding the digital video stream. For example, the transcoder 310may implement a primary codec having an output bandwidth correspondingto the highest (maximum) bandwidth allocated by the system 100 to thevSTB 125 for transmitting video data, a secondary codec (e.g.,intermediate codec) having an output bandwidth lower than primary codec,a tertiary codec (e.g., low bandwidth codec) having an even lowerbandwidth than the secondary codec, etc. The transcoder 310 of theillustrated example selects among the different available codecs to varythe bandwidth of the broadband access medium 120 utilized by the vSTB125 to stream digital video to the subscriber's pSTB 130.

In some examples, the set of available codecs selectable by thetranscoder 310 is limited or otherwise specified by a subscriber profileassociated with the vSTB 125 (or with a subscriber 115 associated withthe vSTB 125) retrieved by an example subscriber profile retriever 315.The example vSTB 125 of FIG. 3 includes the subscriber profile retriever315 to retrieve the subscriber profile from the vAM 135. For example,the subscriber profile retriever 315 may retrieve the subscriber profilefrom the vAM 135 upon startup/instantiation of the vSTB 125 in thevirtualized communication hub 105, at scheduled retrieval intervals, inresponse to the occurrence of one or more events, etc., and/or anycombination thereof.

The subscriber profile retrieved by the subscriber profile retriever 315specifies characteristics of the subscriber's account. In some examples,the subscriber profile specifies a target QoS for digital video streamedto the respective subscriber 115 associated with the vSTB 125. In suchexamples, the transcoder 310 may limit/restrict its codec selection to asubset of the available codecs capable of meeting the QoS targetsspecified in the subscriber's profile. For example, the subscriberprofile may indicate that the subscriber 115 has subscribed to a basicvideo service having a low QoS target. In such an example, thetranscoder 310 may permit selection of any one of its primary codec,secondary codec or tertiary codec for encoding digital video to bestreamed to the associated pSTB 130. In another example, the subscriberprofile may indicate that the subscriber 115 has subscribed to a premiumvideo service having a high QoS target. In such an example, thetranscoder 310 may permit selection of its primary codec or secondarycodec (or, in some examples, just the primary codec) for encodingdigital video to be streamed to the associated pSTB 130, but not permitselection of its tertiary codec (or, in some examples, its tertiarycodec or secondary codec). In some examples, the subscriber profileexpressly specifies the set of available codecs capable of beingselected by the transcoder 310 for encoding video data for streaming.

To control digital video bandwidth utilization in the system 100 inaccordance with the teachings of this disclosure, the example vSTB 125of FIG. 3 also includes an example STB bandwidth adjuster 320. The STBbandwidth adjuster 320 of the illustrated example registers the vSTB 125with the vAF 110 to receive notification messages associated withbandwidth utilization events. The STB bandwidth adjuster 320 furtherprocesses a notification message received from the vAF 110 to determinethe bandwidth utilization event associated with the notificationmessage. For example, the notification message may indicate or otherwisebe associated with a particular bandwidth utilization threshold beingreached (or crossed) by an increased aggregate downstream load monitoredin the network. In such an example, the STB bandwidth adjuster 320 maydetermine the bandwidth utilization event is a bandwidth reduction eventindicating that the vSTB 125 should reduce its output bandwidth, ifpossible, and the STB bandwidth adjuster 320 may further associate thebandwidth reduction event with a severity based on the particularbandwidth utilization threshold (e.g., a low threshold, a highthreshold, etc.) that was reached. As another example, the notificationmessage may indicate or otherwise be associated with a particularbandwidth utilization threshold being reached (or crossed) by adecreased aggregate downstream load monitored in the network. In such anexample, the STB bandwidth adjuster 320 may determine the bandwidthutilization event is a bandwidth enhanced event indicating that the vSTB125 may increase its output bandwidth, if possible, and the STBbandwidth adjuster 320 may further associate the bandwidth enhancedevent with a severity based on the particular bandwidth utilizationthreshold (e.g., a low threshold, a high threshold, etc.) that wasreached. In some examples, the received notification message expresslysignals the type of bandwidth utilization event (e.g., bandwidthreduction event, bandwidth enhancement event, etc.) and/or the severityassociated with the message.

In the illustrated example, the STB bandwidth adjuster 320 provides(e.g., configures) the transcoder 310 with the detected bandwidthutilization event and severity associated with the notification messagereceived from the vAF 110. The transcoder 310 responds to the detectedbandwidth utilization event and severity by selecting an appropriatecodec for encoding the digital video to be streamed to the pSTB 130. Forexample, in response to a bandwidth reduction event, the transcoder 310may switch from its primary codec to its secondary codec or tertiarycodec, or from its secondary codec to its tertiary codec, etc., based onthe current codec being used by the transcoder 310, the severity of theevent and any restrictions caused by the subscriber profile associatedwith the vSTB 125. As another example, in response to a bandwidthenhancement event, the transcoder 310 may switch from its tertiary codecto its secondary codec or primary codec, or from its secondary codec toits primary codec, etc., based on the current codec being used by thetranscoder 310, the severity of the event and any restrictions caused bythe subscriber profile associated with the vSTB 125. Further examples ofthe STB bandwidth adjuster 320 and the transcoder 310 varying the outputbandwidth of the vSTB 125 in response to notification messages receivedfrom the vAF 110 are illustrated in FIG. 5, which is described infurther detail below.

An example message sequence diagram 400 illustrating example messagesexchanged between elements of the example virtualized communication hub105 to control digital video bandwidth utilization in accordance withthe teachings of this disclosure is illustrated in FIG. 4. Withreference to FIGS. 1-3 and their associated descriptions above, theexample message sequence diagram 400 begins with the pSTB 130 of a givensubscriber 115 sending (e.g., upon startup and/or based on one or moreevents and/or a schedule) an example authenticate and register message(AuthAndRegisterSTB message) 405 to the communication hum 105 to causethe vSTB 125 associated with the subscriber 115 to be instantiated andstarted. As disclosed above, the pSTB 130 of the illustrated example ofFIG. 4 can be implemented by a subscriber's media presentation device(e.g., a smart television, a personal computer, etc.), one or moredevices separate from but communicatively coupled to the subscriber'smedia presentation device (e.g., such as a set-top box device, a DVRdevice, a DVD player, a gaming console, etc.), a combination of thesubscriber's media presentation device and one or more external devices,etc. The subscriber profile retriever 315 of the vSTB 125 then sends anexample get user profile message (GetUserProfile message) 410 to the vAM135 to request the subscriber profile associated with the vSTB 125and/or subscriber 115. The subscriber profile retriever 315 of the vSTB125 receives the requested profile in an example return user profilemessage (ReturnUserProfile message) 415 returned by the vAM 135 inresponse to the message 410. The vSTB 125 then sends an exampleauthentication and registration acknowledgment message(AuthAndRegisterAck message 420) back to the pSTB 130 to confirmauthentication and registration is complete.

In the illustrated example of FIG. 5, after startup, the STB bandwidthadjuster 320 of the vSTB 125 also sends an example notificationregistration message (AccessLoadNotificationRegister message) 425 to thevAF 110 to cause the vAF's load event notifier 220 to register the vSTB125 with the vAF 110 for receiving notification messages transmitted bythe vAF 110 when bandwidth utilization events (e.g., bandwidthutilization thresholds being reached by increasing/decreasing aggregateloads) are detected. Subsequently, the STB bandwidth adjuster 320 of thevSTB 125 is able to receive example notification messages(ThresholdNotify messages) 430 from the load event notifier 220 of thevAF 110 indicating or otherwise associated with bandwidth utilizationevents. In response to the notification messages (ThresholdNotifymessages) 430, the STB bandwidth adjuster 320 of the vSTB 125 determinesthe type and severity of the bandwidth utilization event and configuresthe transcoder 310 of the vSTB 125 to select an appropriate codec to beused for encoding digital video for streaming to the pSTB 130.

Sometime later, the pSTB 130 sends (e.g., responsive to a user input) acommand message (PlayStream message) 435 to the vSTB 125 to beginstreaming digital video. In the illustrated example, the STB bandwidthadjuster 320 of the vSTB 125 sends an example resource reservationrequest message (ResourceReservationRequest message) 440 to the vAF 110to request reservation of resources (e.g., bandwidth) in the system 100(e.g., on the broadband access medium 120) to stream its digital video.In some examples, the amount of resources requested in the requestmessage 440 is based on the current codec selected by the transcoder 310in response to the notification messages 430. The resource registrar 225of the vAF 110 processes the request message 440 and, possibly aftersome negotiation between the vAF 110 and vSTB 125, returns an exampleacknowledgment message (Ack message) 445 acknowledging that therequested resources have been reserved for the vSTB 125. (In someexamples, the vSTB 125 will begin streaming, or attempting to stream,the digital video without initially reserving resources by sending therequest message 440.)

In the illustrated example of FIG. 5, after receiving the acknowledgmentmessage 445, the vSTB 125 begins streaming its digital video (indicatedas STREAM 450 in FIG. 5) encoded using the current codec selected by itstranscoder 310. Subsequently, in response to detecting, as describedabove and in further detail below, occurrences of bandwidth utilizationevents, the load event notifier 220 of the vAF 110 sends furthernotification messages (ThresholdNotify messages) 455 to the vSTB 125indicating or otherwise associated with bandwidth utilization events. Inresponse to a notification message 455, the STB bandwidth adjuster 320of the vSTB 125 determines the type and severity of the bandwidthutilization events, and configures the transcoder 310 of the vSTB 125 toswitch to an appropriate codec, if warranted, to continue encoding thedigital video for streaming to the pSTB 130. As illustrated in theexample of FIG. 5, the vSTB 125 may continue to adjust its outputbandwidth for streaming the digital video 450 (e.g., by switching amongavailable codecs) in response to the notification messages 455, if any,received from the vAF 110.

An example sequence of operations 500 performed by the vAF 110 and vSTB125 of the virtualized communication hub 105 to vary digital videobandwidth utilization in accordance with the teachings of thisdisclosure is illustrated in FIG. 5. In the illustrated example of FIG.5, the vAF 110 detects the occurrences of bandwidth utilization eventsby comparing monitored aggregate load in the system 100 (e.g., on thebroadband access medium 120) to one or more bandwidth utilizationthresholds. Furthermore, in the illustrated example of FIG. 5, the vAF110 and vSTB 125 support two lower bandwidth utilization thresholds,referred to in the figure as Threshold_1H 505 and Threshold_1L 510, andtwo upper bandwidth utilization thresholds, referred to in the figure asThreshold_2H 515 and Threshold_2L 520, to implement hysteresis whenadjusting the output bandwidth of the vSTB 125.

The example operations 500 of FIG. 5 begin with the vSTB 125 initially(e.g., at time T0) streaming digital video encoded with its primarycodec (block 525). Later, at time T1, the vAF 110 detects that themonitored aggregate load has increased to reach the thresholdThreshold_1H 505. Accordingly, at time T1, the vAF 110 sends anotification message indicating or otherwise corresponding to thethreshold Threshold_1H 505 having be reached by an increasing aggregateload, which is received by the vSTB 125. In response to thisnotification message, the vSTB 125 switches to encoding the streameddigital video with a secondary codec (e.g., a medium bandwidth codec)having a lower output bandwidth than the primary codec (block 530).Later, at time T2, the vAF 110 detects that the monitored aggregate loadhas increased to reach the threshold Threshold_2H 515, which is higherthan the threshold Threshold_1H 505. Accordingly, at time T2, the vAF110 sends another notification message, which indicates or otherwisecorresponds to the threshold Threshold_2H 515 having be reached by anincreasing aggregate load, which is received by the vSTB 125. Inresponse to this notification message, the vSTB 125 switches to encodingthe streamed digital video with a tertiary codec (e.g., a low bandwidthcodec) having a lower output bandwidth than the secondary codec (block535). Later, at time T3, the vAF 110 detects that the monitoredaggregate load has decreased to reach the threshold Threshold_2L 520,which is lower than the threshold Threshold_2H 515 but higher than thethreshold Threshold_1H 505. Accordingly, at time T3, the vAF 110 sendsanother notification message, which indicates or otherwise correspondsto the threshold Threshold_2L 520 having be reached by a decreasingaggregate load, which is received by the vSTB 125. In response to thisnotification message, the vSTB 125 switches back to encoding thestreamed digital video with the secondary codec (block 540).

While an example manner of implementing the example digital videocommunication system 100 is illustrated in FIGS. 1-5, one or more of theelements, processes and/or devices illustrated in FIGS. 1-5 may becombined, divided, re-arranged, omitted, eliminated and/or implementedin any other way. Further, the example virtualized communication hub105, the example vAF 110, the example broadband access medium 120, theexample vSTB 125, the example pSTB 130, the example vAM 135, the exampleaccess point functions 205, the example bandwidth controller 210, theexample load monitor 215, the example load event notifier 220, theexample resource registrar 225, the example cloud DVR 305, the exampletranscoder 310, the example subscriber profile retriever 315, theexample STB bandwidth adjuster 320 and/or, more generally, the exampledigital video communication system 100 of FIGS. 1-5 may be implementedby hardware, software, firmware and/or any combination of hardware,software and/or firmware. Thus, for example, any of the examplevirtualized communication hub 105, the example vAF 110, the examplebroadband access medium 120, the example vSTB 125, the example pSTB 130,the example vAM 135, the example access point functions 205, the examplebandwidth controller 210, the example load monitor 215, the example loadevent notifier 220, the example resource registrar 225, the examplecloud DVR 305, the example transcoder 310, the example subscriberprofile retriever 315, the example STB bandwidth adjuster 320 and/or,more generally, the example digital video communication system 100 couldbe implemented by one or more analog or digital circuit(s), logiccircuits, programmable processor(s), application specific integratedcircuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)) and/or fieldprogrammable logic device(s) (FPLD(s)). When reading any of theapparatus or system claims of this patent to cover a purely softwareand/or firmware implementation, at least one of the example digitalvideo communication system 100, the example virtualized communicationhub 105, the example vAF 110, the example broadband access medium 120,the example vSTB 125, the example pSTB 130, the example vAM 135, theexample access point functions 205, the example bandwidth controller210, the example load monitor 215, the example load event notifier 220,the example resource registrar 225, the example cloud DVR 305, theexample transcoder 310, the example subscriber profile retriever 315and/or the example STB bandwidth adjuster 320 is/are hereby expresslydefined to include a tangible computer readable storage device orstorage disk such as a memory, a digital versatile disk (DVD), a compactdisk (CD), a Blu-ray disk, etc. storing the software and/or firmware.Further still, the example digital video communication system 100 mayinclude one or more elements, processes and/or devices in addition to,or instead of, those illustrated in FIGS. 1-5, and/or may include morethan one of any or all of the illustrated elements, processes anddevices.

Flowcharts representative of example machine readable instructions forimplementing the example digital video communication system 100, theexample virtualized communication hub 105, the example vAF 110, theexample broadband access medium 120, the example vSTB 125, the examplepSTB 130, the example vAM 135, the example access point functions 205,the example bandwidth controller 210, the example load monitor 215, theexample load event notifier 220, the example resource registrar 225, theexample cloud DVR 305, the example transcoder 310, the examplesubscriber profile retriever 315 and/or the example STB bandwidthadjuster 320 are shown in FIGS. 6-9. In these examples, the machinereadable instructions comprise one or more programs for execution by aprocessor, such as the processor 1012 shown in the example processorplatform 1000 discussed below in connection with FIG. 10. The one ormore programs, or portion(s) thereof, may be embodied in software storedon a tangible computer readable storage medium such as a CD-ROM, afloppy disk, a hard drive, a digital versatile disk (DVD), a Blu-rayDisk™, or a memory associated with the processor 1012, but the entireprogram or programs and/or portions thereof could alternatively beexecuted by a device other than the processor 1012 and/or embodied infirmware or dedicated hardware (e.g., implemented by an ASIC, a PLD, anFPLD, discrete logic, etc.). Further, although the example program(s)is(are) described with reference to the flowcharts illustrated in FIGS.6-9, many other methods of implementing the example digital videocommunication system 100, the example virtualized communication hub 105,the example vAF 110, the example broadband access medium 120, theexample vSTB 125, the example pSTB 130, the example vAM 135, the exampleaccess point functions 205, the example bandwidth controller 210, theexample load monitor 215, the example load event notifier 220, theexample resource registrar 225, the example cloud DVR 305, the exampletranscoder 310, the example subscriber profile retriever 315 and/or theexample STB bandwidth adjuster 320 may alternatively be used. Forexample, with reference to the flowcharts illustrated in FIGS. 6-9, theorder of execution of the blocks may be changed, and/or some of theblocks described may be changed, eliminated, combined and/or subdividedinto multiple blocks.

As mentioned above, the example processes of FIGS. 6-9 may beimplemented using coded instructions (e.g., computer and/or machinereadable instructions) stored on a tangible computer readable storagemedium such as a hard disk drive, a flash memory, a read-only memory(ROM), a compact disk (CD), a digital versatile disk (DVD), a cache, arandom-access memory (RAM) and/or any other storage device or storagedisk in which information is stored for any duration (e.g., for extendedtime periods, permanently, for brief instances, for temporarilybuffering, and/or for caching of the information). As used herein, theterm tangible computer readable storage medium is expressly defined toinclude any type of computer readable storage device and/or storage diskand to exclude propagating signals and to exclude transmission media. Asused herein, “tangible computer readable storage medium” and “tangiblemachine readable storage medium” are used interchangeably. Additionallyor alternatively, the example processes of FIGS. 6-9 may be implementedusing coded instructions (e.g., computer and/or machine readableinstructions) stored on a non-transitory computer and/or machinereadable medium such as a hard disk drive, a flash memory, a ROM, a CD,a DVD, a cache, a RAM and/or any other storage device or storage disk inwhich information is stored for any duration (e.g., for extended timeperiods, permanently, for brief instances, for temporarily buffering,and/or for caching of the information). As used herein, the termnon-transitory computer readable medium is expressly defined to includeany type of computer readable storage device and/or storage disk and toexclude propagating signals and to exclude transmission media. As usedherein, when the phrase “at least” is used as the transition term in apreamble of a claim, it is open-ended in the same manner as the terms“comprising” and “including” are open ended. Also, as used herein, theterms “computer readable” and “machine readable” are consideredequivalent unless indicated otherwise.

Example programs 605 and 610 that may be executed to implement theexample vAF 110 and the example vSTB 125, respectively, of the examplevirtualized communication hub 105 included in the example digital videocommunication system 100 of FIGS. 1-5 are represented by the flowchartsshown in FIG. 6. With reference to the preceding figures and associatedwritten descriptions, the example program 605 of FIG. 6, which canimplement the example vAF 110, begins execution at block 615 at whichthe vAF 110 performs preliminary processing related to controllingdigital video bandwidth utilization. An example program to perform theprocessing at block 615 is illustrated in FIG. 7, which is described infurther detail below.

After preliminary processing is complete, at block 620, the example loadmonitor 215 of the example bandwidth controller 210 of the vAF 110monitors the aggregate downstream load on the broadband access medium120 of the system 100 (and/or anywhere else in the system 100, such aswithin the virtualized communication hub 105) to detect bandwidthutilization events, as described above. At block 625, the load monitor215 determines whether a bandwidth utilization event has been detected.If a bandwidth utilization event is detected (block 625), then at block630 the example load event notifier 220 of the example bandwidthcontroller 210 of the vAF 110 sends, as described above, a notificationmessage identifying or otherwise corresponding to the particulardetected bandwidth utilization event to a registered vSTB 125. After thenotification message is sent (block 630), or if no bandwidth utilizationevent is detected (block 625), then at block 635 the vAF 110 determineswhether to continue aggregate load monitoring. If monitoring is tocontinue (block 635), the processing returns to block 620 and blockssubsequent thereto. Otherwise, execution of the example program 605ends.

The example program 610 of FIG. 6, which can implement the example vSTB125, begins execution at block 640 at which the vSTB 125 performspreliminary processing related to controlling digital video bandwidthutilization. An example program to perform the processing at block 640is illustrated in FIG. 7, which is described in further detail below.After preliminary processing is complete, at block 645, the exampletranscoder 310 of the vSTB 125 begins streaming digital video to itsassociated pSTB 130 (e.g., in response to a user input at the pSTB 130).At block 650, the example STB bandwidth adjuster 320 of the vSTB 125monitors for notification messages corresponding to bandwidthutilization events detected by the vAF 110. At block 655, the STBbandwidth adjuster 320 determines whether a notification message hasbeen received from the vAF 110. If a notification message is received(block 655), at block 660 the STB bandwidth adjuster 320 adjusts theoutput bandwidth used by the vSTB 125 for streaming video, as describedabove. For example, at block 660, the vSTB 125 determines the type andseverity of the bandwidth utilization event associated with receivednotification message, determines the set of available codecs that can beselected for encoding the digital video (e.g., as limited or specifiedbased on a subscriber profile), and then configures the transcoder 310of the vSTB 125 to switch to an appropriate codec for encoding thedigital video, as described above.

After adjusting the output bandwidth of the vSTB 125 (block 660), or ifa notification message has not been received, then at block 665 the vSTB110 determines (e.g., based on the presence or absence of a user input)whether to continue streaming digital video. If streaming is to continue(block 665), the processing returns to block 645 and blocks subsequentthereto. Otherwise, execution of the example program 610 ends

Example programs P615 and P640 that may be executed to implement thepreliminary processing at blocks 615 and 620, respectfully, of FIG. 6are represented by the flowcharts shown in FIG. 7. With reference to thepreceding figures and associated written descriptions, the exampleprogram P615 of FIG. 7, which can implement the example vAF 110, beginsexecution at block 705 at which the example load event notifier 220 ofthe example bandwidth controller 210 of the vAF 110 monitors for anotification registration message from a vSTB 125. If a notificationregistration message is received (block 710), at block 715 the loadevent notifier 220 of the vAF 110 registers the vSTB 125 to receivenotification messages corresponding to bandwidth utilization events, asdescribed above.

At block 720, the example load monitor 215 of the bandwidth controller210 of the vAF 110 monitors the aggregate downstream load on thebroadband access medium 120 of the system 100 (and/or anywhere else inthe system 100, such as within the virtualized communication hub 105) todetect bandwidth utilization events, as described above. If a bandwidthutilization event is detected (block 725), then at block 730 the exampleload event notifier 220 of the example bandwidth controller 210 of thevAF 110 sends, as described above, a notification message identifying orotherwise corresponding to the particular detected bandwidth utilizationevent to a registered vSTB 125. At block 735, the example resourceregistrar 225 of the bandwidth controller 210 of the vAF 110 monitorsfor resource reservation request message from the vSTB 125. If aresource reservation request message is received (block 740), thenresource registrar 225 reserves (possibly after a negotiation) resourceson the broadband access medium 120 (and/or anywhere else in the system100, such as within the virtualized communication hub 105) for the vSTB125 to use for streaming digital audio. Processing then proceeds toblock 620 of FIG. 6.

The example program P640 of FIG. 7, which can implement the example vSTB125, begins execution at block 750 at which the vSTB 125 is initialized(e.g., instantiated and started). At block 755, the example subscriberprofile retriever 315 of the vSTB 125 retrieves a subscriber profilefrom the vAM 135. At block 760, the example STB bandwidth adjuster 320of the vSTB 125 sends a notification registration message to the vAF 110to register to receive notification messages corresponding to bandwidthutilization events, as described above. At block 765, the STB bandwidthadjuster 320 of the vSTB 125 monitors for notification messages from thevAF 110 corresponding to bandwidth utilization events, as describedabove. If a notification message is received (block 770), then at block775 the STB bandwidth adjuster 320 adjusts the output bandwidth to beused by the vSTB 125 for streaming video, as described above. Forexample, at block 660, the STB bandwidth adjuster 320 of the vSTB 125determines the type and severity of the bandwidth utilization eventassociated with received notification message, determines the set ofavailable codes that can be selected for encoding the digital video(e.g., as limited or specified based on the subscriber profile retrievedat block 755), and then configures the transcoder 310 of the vSTB 125 toselect an appropriate code for future encoding of digital video, asdescribed above.

At block 780, the vSTB 125 monitors for control messages received fromits corresponding pSTB 130 to, for example, begin streaming digitalvideo. If such a control message is received (block 785), then at block790 the STB bandwidth adjuster 320 of vSTB 125 sends a resourcereservation request message to the vAF 110 to request reservation(possibly after a negotiation) of resources on the broadband accessmedium 120 (and/or anywhere else in the system 100, such as within thevirtualized communication hub 105) for the vSTB 125 to use to startstreaming digital audio. Processing then proceeds to block 645 of FIG.6.

An example program 800 that may be used to implement load monitoring inthe example vAF 110 of FIGS. 1-5 is illustrated in FIG. 8. In someexamples, the program 800 can be used to implement the processing atblock 620-630 of FIG. 6. With reference to the preceding figures andassociated written descriptions, the example program 800 of FIG. 8begins execution at block 805, at which the example load monitor 215 ofthe example bandwidth controller 210 of the vAF 110 monitors theaggregate downstream load on the broadband access medium 120 (and/oranywhere else in the system 100, such as within the virtualizedcommunication hub 105). At block 810, the load monitor 215 determineswhether the aggregate load has increased to reach a first bandwidthutilization threshold, such as the threshold Threshold_1H 505 of FIG. 5.If the aggregate load has increased to reach the first bandwidthutilization threshold (block 810), at block 815 the example load eventnotifier 220 of the bandwidth controller 210 of the vAF 110 sends afirst notification message to indicate that a first type of bandwidthutilization event has been detected. For example, the first notificationmessage may indicate or otherwise represent that a low severitybandwidth utilization event associated with the aggregate downstreamload reaching a first threshold has occurred.

However, if the aggregate load has not increased to reach the firstbandwidth utilization threshold (block 810), then at block 820 the loadmonitor 215 determines whether the aggregate load has decreased to reacha second bandwidth utilization threshold lower than the first bandwidthutilization threshold, such as the threshold Threshold_1L 510 of FIG. 5.If the aggregate load has decreased to reach the second bandwidthutilization threshold (block 820), at block 825 the example load eventnotifier 220 sends a second notification message to indicate that asecond type of bandwidth utilization event has been detected. Forexample, the second notification message may indicate or otherwiserepresent that a low severity bandwidth utilization event associatedwith the aggregate downstream load decreasing below a second thresholdhas occurred.

However, if the aggregate load has not decreased to reach the secondbandwidth utilization threshold (block 820), then at block 830 the loadmonitor 215 determines whether the aggregate load has increased to reacha third bandwidth utilization threshold higher than the first bandwidthutilization threshold, such as the threshold Threshold_2H 515 of FIG. 5.If the aggregate load has increased to reach the third bandwidthutilization threshold (block 830), at block 835 the example load eventnotifier 220 sends a third notification message to indicate that a thirdtype of bandwidth utilization event has been detected. For example, thethird notification message may indicate or otherwise represent that ahigh severity bandwidth utilization event associated with the aggregatedownstream load increasing above a third threshold has occurred.

However, if the aggregate load has not increased to reach the thirdbandwidth utilization threshold (block 830), then at block 840 the loadmonitor 215 determines whether the aggregate load has decreased to reacha fourth bandwidth utilization threshold lower than the third bandwidthutilization threshold but higher than the first bandwidth utilizationthreshold, such as the threshold Threshold_2L 520 of FIG. 5. If theaggregate load has decreased to reach the fourth bandwidth utilizationthreshold (block 840), at block 845 the example load event notifier 220sends a fourth notification message to indicate that a fourth type ofbandwidth utilization event has been detected. For example, the fourthnotification message may indicate or otherwise represent that a highseverity bandwidth utilization event associated with the aggregatedownstream load decreasing below a fourth threshold has occurred.Execution of the example program 800 then ends.

An example program 900 that may be used to implement load adjustmentprocessing in the example vSTB 125 of FIGS. 1-5 is illustrated in FIG.9. In some examples, the program 900 can be used to implement theprocessing at block 655-660 of FIG. 6. With reference to the precedingfigures and associated written descriptions, the example program 900 ofFIG. 9 begins execution at block 905, at which the example STB bandwidthadjuster 320 of the vSTB 125 monitors for notification messages sent bythe vAF 110. At block 910, the STB bandwidth adjuster 320 determineswhether a first notification message indicating occurrence of a lowseverity bandwidth utilization event corresponding to monitoredaggregate load increasing to reach a first bandwidth utilizationthreshold, such as the threshold Threshold_1H 505 of FIG. 5, has beenreceived. If such a first notification message is received (block 910),then at block 915 the STB bandwidth adjuster 320 controls, as describedabove, the example transcoder 310 of the vSTB 125 to encode digitalvideo for streaming using a secondary codec associated with a loweroutput bandwidth than the vSTB's primary codec.

However, if such a first notification message is not received (block910), at block 920 the STB bandwidth adjuster 320 determines whether asecond notification message indicating occurrence of a low severitybandwidth utilization event corresponding to monitored aggregate loaddecreasing to reach a second bandwidth utilization threshold, such asthe threshold Threshold_1L 510 of FIG. 5, has been received. If such asecond notification message is received (block 920), then at block 925the STB bandwidth adjuster 320 controls, as described above, the exampletranscoder 310 of the vSTB 125 to encode digital video for streamingusing the vSTB's primary codec.

However, if such a second notification message is not received (block920), at block 930 the STB bandwidth adjuster 320 determines whether athird notification message indicating occurrence of a high severitybandwidth utilization event corresponding to monitored aggregate loadincreasing to reach a third bandwidth utilization threshold, such as thethreshold Threshold_1H 515 of FIG. 5, has been received. If such a thirdnotification message is received (block 930), then at block 935 the STBbandwidth adjuster 320 controls, as described above, the exampletranscoder 310 of the vSTB 125 to encode digital video for streamingusing a tertiary codec associated with a lower output bandwidth than thevSTB's secondary codec.

However, if such a third notification message is not received (block930), at block 940 the STB bandwidth adjuster 320 determines whether afourth notification message indicating occurrence of a high severitybandwidth utilization event corresponding to monitored aggregate loaddecreasing to reach a fourth bandwidth utilization threshold, such asthe threshold Threshold_1L 520 of FIG. 5, has been received. If such afourth notification message is received (block 940), then at block 945the STB bandwidth adjuster 320 controls, as described above, the exampletranscoder 310 of the vSTB 125 to encode digital video for streamingusing the vSTB's secondary codec. In the illustrated example of FIG. 9,is such a fourth notification message is not received (block 930), atblock 950, the vSTB 125 indicates that an error condition has occurred.Execution of the example program 900 then ends.

FIG. 10 is a block diagram of an example processor platform 1000structured to execute the instructions of FIGS. 6-9 to implement theexample virtualized communication hub 105 of the example digital videocommunication system 100 of FIGS. 1-5. The processor platform 1000 cancorrespond to, for example, one or more servers of a cloud computingdata center, and/or any other type of computing device or devices.

The processor platform 1000 of the illustrated example includes aprocessor 1012. The processor 1012 of the illustrated example ishardware. For example, the processor 1012 can be implemented by one ormore integrated circuits, logic circuits, microprocessors or controllersfrom any desired family or manufacturer. In the illustrated example ofFIG. 11, the processor 1012 is configured via example instructions 1032,which include one or more the example instructions of FIGS. 6-9, toimplement at least the example virtualized communication hub 105, theexample vAF 110, the example vSTB 125, the example bandwidth controller210, the example load monitor 215, the example load event notifier 220,the example resource registrar 225, the example cloud DVR 305, theexample transcoder 310, the example subscriber profile retriever 315 andthe example STB bandwidth adjuster 320 of FIGS. 1-5.

The processor 1012 of the illustrated example includes a local memory1013 (e.g., a cache). The processor 1012 of the illustrated example isin communication with a main memory including a volatile memory 1014 anda non-volatile memory 1016 via a link 1018. The link 1018 may beimplemented by a bus, one or more point-to-point connections, etc., or acombination thereof. The volatile memory 1014 may be implemented bySynchronous Dynamic Random Access Memory (SDRAM), Dynamic Random AccessMemory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or anyother type of random access memory device. The non-volatile memory 1016may be implemented by flash memory and/or any other desired type ofmemory device. Access to the main memory 1014, 1016 is controlled by amemory controller.

The processor platform 1000 of the illustrated example also includes aninterface circuit 1020. The interface circuit 1020 may be implemented byany type of interface standard, such as an Ethernet interface, auniversal serial bus (USB), and/or a PCI express interface.

In the illustrated example, one or more input devices 1022 are connectedto the interface circuit 1020. The input device(s) 1022 permit(s) a userto enter data and commands into the processor 1012. The input device(s)can be implemented by, for example, an audio sensor, a microphone, acamera (still or video), a keyboard, a button, a mouse, a touchscreen, atrack-pad, a trackball, a trackbar (such as an isopoint), a voicerecognition system and/or any other human-machine interface. Also, manysystems, such as the processor platform 1000, can allow the user tocontrol the computer system and provide data to the computer usingphysical gestures, such as, but not limited to, hand or body movements,facial expressions, and face recognition.

One or more output devices 1024 are also connected to the interfacecircuit 1020 of the illustrated example. The output devices 1024 can beimplemented, for example, by display devices (e.g., a light emittingdiode (LED), an organic light emitting diode (OLED), a liquid crystaldisplay, a cathode ray tube display (CRT), a touchscreen, a tactileoutput device, a printer and/or speakers). The interface circuit 1020 ofthe illustrated example, thus, typically includes a graphics drivercard, a graphics driver chip or a graphics driver processor.

The interface circuit 1020 of the illustrated example also includes acommunication device such as a transmitter, a receiver, a transceiver, amodem and/or network interface card to facilitate exchange of data withexternal machines (e.g., computing devices of any kind) via a network1026 (e.g., an Ethernet connection, a digital subscriber line (DSL), atelephone line, coaxial cable, a cellular telephone system, etc.).

The processor platform 1000 of the illustrated example also includes oneor more mass storage devices 1028 for storing software and/or data.Examples of such mass storage devices 1028 include floppy disk drives,hard drive disks, compact disk drives, Blu-ray disk drives, RAID(redundant array of independent disks) systems, and digital versatiledisk (DVD) drives.

Coded instructions 1032 corresponding to the instructions of FIGS. 6-9may be stored in the mass storage device 1028, in the volatile memory1014, in the non-volatile memory 1016, in the local memory 1013 and/oron a removable tangible computer readable storage medium, such as a CDor DVD 1036.

The foregoing disclosure provides examples of controlling digital videobandwidth utilization with a virtualized communication hub implementedby a server cluster in a digital video communication system (e.g., abroadband service provider network). The following further examples,which include subject matter such as a method to control digital videobandwidth utilization with a virtualized communication hub implementedby a server cluster, means for controlling digital video bandwidthutilization with a virtualized communication hub implemented by a servercluster, at least one computer-readable storage medium includinginstructions that, when executed by a processor, cause the processor tocontrol digital video bandwidth utilization with a virtualizedcommunication hub, and a virtualized communication hub implemented by aserver cluster to control digital video bandwidth utilization aredisclosed herein. The disclosed examples can be implemented individuallyand/or in one or more combinations.

Example 1 is a virtualized communication hub implemented by a servercluster. The virtualized communication hub of example 1 includes avirtual set-top box to stream digital media to a physical set-top boxvia a broadband access medium. The virtualized communication hub ofexample 1 also includes virtual access function to monitor an aggregateload on the broadband access medium to detect bandwidth utilizationevents, and send a first notification message to the virtual set-top boxin response to detecting a first bandwidth utilization event, thevirtual set-top box to adjust an output bandwidth for streaming thedigital media based on the first notification message.

Example 2 includes the subject matter of example 1, wherein the virtualaccess function is to register the virtual set-top box to receivenotification messages prior to the first notification message beingsent, the virtual access function to register the virtual set-top box inresponse to an access request message received from the virtual set-topbox.

Example 3 includes the subject matter of example 1 or example 2, whereinthe virtual access function is to reserve resources of the broadbandaccess medium for use by the virtual set-top box to stream the digitalmedia in response to a reservation request received from the virtualset-top box after the first notification message being sent.

Example 4 includes the subject matter of example Error! Reference sourcenot found., wherein, in response to detecting a second bandwidthutilization event, the virtual access function is to adjust theresources of the broadband access medium reserved for use by the virtualset-top box to stream the digital media, and send a second notificationmessage to the virtual set-top box, the virtual set-top box to furtheradjust the output bandwidth for streaming the digital media based on thesecond notification message.

Example 5 includes the subject matter of any one of examples 1 to 4,wherein the virtual set-top box is to adjust the output bandwidth forstreaming the digital media based on the first notification message anda profile of a subscriber associated with the virtual set-top box.

Example 6 includes the subject matter of any one of examples 1 to 5,wherein to monitor the aggregate load, the virtual access function is tocompare the monitored aggregate load to a first bandwidth utilizationthreshold, and detect the first bandwidth utilization event when themonitored aggregate load increases to reach the first bandwidthutilization threshold, the first bandwidth utilization event associatedwith the monitored aggregate load having reached the first bandwidthutilization threshold.

Example 7 includes the subject matter of example 6, wherein the firstnotification message indicates the monitored aggregate load has reachedthe first bandwidth utilization threshold, and in response to receivingthe first notification message, the virtual set-top box is to control atranscoder of the virtual set-top box to encode a data stream forstreaming the digital video with a secondary codec associated with alower bandwidth than a primary codec of the virtual set-top box toreduce the output bandwidth for streaming the digital media.

Example 8 includes the subject matter of example 7, wherein to monitorthe aggregate load, the virtual access function is further to comparethe monitored aggregate load to a second bandwidth utilization thresholdlower than the first bandwidth utilization threshold, and detect asecond bandwidth utilization event when the monitored aggregate loaddecreases to reach the second bandwidth utilization threshold, thesecond bandwidth utilization event associated with the monitoredaggregate load having reached the second bandwidth utilizationthreshold.

Example 9 includes the subject matter of example 8, wherein in responseto detecting the second bandwidth utilization event, the virtual accessfunction is to send a second notification message to the virtual set-topbox, the second notification message indicating the monitored aggregateload has reached the second bandwidth utilization threshold, and inresponse to receiving the second notification message, the virtualset-top box is to control the transcoder to switch from the secondarycodec to the primary codec to encode the data stream for streaming thedigital media.

Example 10 includes the subject matter of example 9, wherein to monitorthe aggregate load, the virtual access function is further to comparethe monitored aggregate load to a third bandwidth utilization thresholdhigher than the first bandwidth utilization threshold, and detect athird bandwidth utilization event when the monitored aggregate loadincreases to reach the third bandwidth utilization threshold, the thirdbandwidth utilization event associated with the monitored aggregate loadhaving reached the third bandwidth utilization threshold.

Example 11 includes the subject matter of example 10, wherein inresponse to detecting the third bandwidth utilization event, the virtualaccess function is to send a third notification message to the virtualset-top box, the third notification message indicating the monitoredaggregate load has reached the third bandwidth utilization threshold,and in response to receiving the third notification message, the virtualset-top box is to control the transcoder to encode the data stream forstreaming the digital media with a tertiary codec associated with alower bandwidth than the secondary codec to further reduce the outputbandwidth for streaming the digital media.

Example 12 includes the subject matter of example 11, wherein to monitorthe aggregate load, the virtual access function is further to comparethe monitored aggregate load to a fourth bandwidth utilization thresholdlower than the third bandwidth utilization threshold but higher than thefirst bandwidth utilization threshold, and detect a fourth bandwidthutilization event when the monitored aggregate load decreases to reachthe fourth bandwidth utilization threshold, the fourth bandwidthutilization event associated with the monitored aggregate load havingreached the fourth bandwidth utilization threshold.

Example 13 includes the subject matter of example 12, wherein inresponse to detecting the fourth bandwidth utilization event, thevirtual access function is to send a fourth notification message to thevirtual set-top box, the fourth notification message indicating themonitored aggregate load has reached the fourth bandwidth utilizationthreshold, and in response to receiving the fourth notification message,the virtual set-top box is to control the transcoder to switch from thetertiary codec to the secondary codec to encode the data stream forstreaming the digital media.

Example 14 is a method to control digital video bandwidth utilizationwith a virtualized communication hub implemented by a server cluster.The method of example 14 includes monitoring, with a virtual accessfunction of the virtualized communication hub, an aggregate load on abroadband access medium to detect bandwidth utilization events. Themethod of example 14 also includes sending, from the virtual accessfunction, a first notification message to a virtual set-top box of thevirtualized communication hub in response to detecting a first bandwidthutilization event. The method of example 14 further includes adjusting,at the virtual set-top box and based on the first notification message,an output bandwidth for streaming digital media from the virtual set-topbox to a physical set-top box via a broadband access medium.

Example 15 includes the subject matter of example 14, and furtherincludes, in response to an access request message received by thevirtual access function from the virtual set-top box prior to the firstnotification message being sent, registering the virtual set-top boxwith the virtual access function to permit the virtual set-top box toreceive notification messages.

Example 16 includes the subject matter of example 14 or example 15, andfurther includes reserving resources of the broadband access medium foruse by the virtual set-top box to stream the digital media in responseto a reservation request received from the virtual set-top box after thefirst notification message being sent.

Example 17 includes the subject matter of example 16, and furtherincludes, in response to detecting a second bandwidth utilization event,adjusting the resources of the broadband access medium reserved for useby the virtual set-top box to stream the digital media, and sending asecond notification message from the virtual access function to thevirtual set-top box, the virtual set-top box to further adjust theoutput bandwidth for streaming the digital media based on the secondnotification message.

Example 18 includes the subject matter of any one of examples 14 to 17,wherein the virtual set-top box is to adjust the output bandwidth forstreaming the digital media based on the first notification message anda profile of a subscriber associated with the virtual set-top box.

Example 19 includes the subject matter of any one of examples 14 to 18,wherein the monitoring of the aggregate load includes comparing themonitored aggregate load to a first bandwidth utilization threshold, anddetecting the first bandwidth utilization event when the monitoredaggregate load increases to reach the first bandwidth utilizationthreshold, the first bandwidth utilization event associated with themonitored aggregate load having reached the first bandwidth utilizationthreshold.

Example 20 includes the subject matter of example 19, wherein the firstnotification message indicates the monitored aggregate load has reachedthe first bandwidth utilization threshold, and the adjusting of theoutput bandwidth includes controlling a transcoder of the virtualset-top box to encode a data stream for streaming the digital video witha secondary codec associated with a lower bandwidth than a primary codecof the virtual set-top box to reduce the output bandwidth for streamingthe digital media.

Example 21 includes the subject matter of example 20, wherein themonitoring of the aggregate load further includes comparing themonitored aggregate load to a second bandwidth utilization thresholdlower than the first bandwidth utilization threshold, and detecting asecond bandwidth utilization event when the monitored aggregate loaddecreases to reach the second bandwidth utilization threshold, thesecond bandwidth utilization event associated with the monitoredaggregate load having reached the second bandwidth utilizationthreshold.

Example 22 includes the subject matter of example 21, and furtherincludes, in response to detecting the second bandwidth utilizationevent, sending a second notification message from the virtual accessfunction to the virtual set-top box, the second notification messageindicating the monitored aggregate load has reached the second bandwidthutilization threshold, and controlling, at the virtual set-top box inresponse to receiving the second notification message, the transcoder toswitch from the secondary codec to the primary codec to encode the datastream for streaming the digital media.

Example 23 includes the subject matter of example 22, wherein themonitoring of the aggregate load further includes comparing themonitored aggregate load to a third bandwidth utilization thresholdhigher than the first bandwidth utilization threshold, and detecting athird bandwidth utilization event when the monitored aggregate loadincreases to reach the third bandwidth utilization threshold, the thirdbandwidth utilization event associated with the monitored aggregate loadhaving reached the third bandwidth utilization threshold.

Example 24 includes the subject matter of example 23, and furtherincludes, in response to detecting the third bandwidth utilizationevent, sending a third notification message from the virtual accessfunction to the virtual set-top box, the third notification messageindicating the monitored aggregate load has reached the third bandwidthutilization threshold, and controlling, at the virtual set-top box inresponse to receiving the third notification message, the transcoder toencode the data stream for streaming the digital media with a tertiarycodec associated with a lower bandwidth than the secondary codec tofurther reduce the output bandwidth for streaming the digital media.

Example 25 includes the subject matter of example 24, wherein themonitoring of the aggregate load further includes comparing themonitored aggregate load to a fourth bandwidth utilization thresholdlower than the third bandwidth utilization threshold but higher than thefirst bandwidth utilization threshold, and detecting a fourth bandwidthutilization event when the monitored aggregate load decreases to reachthe fourth bandwidth utilization threshold, the fourth bandwidthutilization event associated with the monitored aggregate load havingreached the fourth bandwidth utilization threshold.

Example 26 includes the subject matter of example 25, and furtherincludes, in response to detecting the fourth bandwidth utilizationevent, sending a fourth notification message from the virtual accessfunction to the virtual set-top box, the fourth notification messageindicating the monitored aggregate load has reached the fourth bandwidthutilization threshold, and controlling, at the virtual set-top box inresponse to receiving the fourth notification message, the transcoder toswitch from the tertiary codec to the secondary codec to encode the datastream for streaming the digital media.

Example 27 is a tangible computer readable storage medium includingcomputer readable instructions which, when executed, cause one or moreprocessors of a server cluster to at least (i) monitor, with a virtualaccess function of a virtualized communication hub implemented by theserver cluster, an aggregate load on a broadband access medium to detectbandwidth utilization events, (ii) send, from the virtual accessfunction, a first notification message to a virtual set-top box of thevirtualized communication hub in response to detecting a first bandwidthutilization event, and (iii) adjust, at the virtual set-top box andbased on the first notification message, an output bandwidth forstreaming digital media from the virtual set-top box to a physicalset-top box via a broadband access medium.

Example 28 includes the subject matter of example 27, wherein thecomputer readable instructions, when executed, further cause the one ormore processors to register, in response to an access request messagereceived by the virtual access function from the virtual set-top boxprior to the first notification message being sent, the virtual set-topbox with the virtual access function to permit the virtual set-top boxto receive notification messages.

Example 29 includes the subject matter of example 27 or example 28,wherein the computer readable instructions, when executed, further causethe one or more processors to reserve resources of the broadband accessmedium for use by the virtual set-top box to stream the digital media inresponse to a reservation request received from the virtual set-top boxafter the first notification message being sent.

Example 30 includes the subject matter of example 29, wherein, inresponse to detecting a second bandwidth utilization event, the computerreadable instructions, when executed, further cause the one or moreprocessors to adjust the resources of the broadband access mediumreserved for use by the virtual set-top box to stream the digital media,and send a second notification message from the virtual access functionto the virtual set-top box to cause adjustment of the output bandwidthfor streaming the digital media.

Example 31 includes the subject matter of any one of examples 27 to 30,wherein the computer readable instructions, when executed, further causethe one or more processors to adjust the output bandwidth for streamingthe digital media based on the first notification message and a profileof a subscriber associated with the virtual set-top box.

Example 32 includes the subject matter of any one of examples 27 to 31,wherein the computer readable instructions, when executed, cause the oneor more processors to monitor the aggregate load by: (i) comparing themonitored aggregate load to a plurality of bandwidth utilizationthreshold; (ii) detecting the first bandwidth utilization event when themonitored aggregate load increases to reach the first bandwidthutilization threshold, the first bandwidth utilization event associatedwith the monitored aggregate load having reached the first bandwidthutilization threshold; (iii) detecting a second bandwidth utilizationevent when the monitored aggregate load decreases to reach a secondbandwidth utilization threshold lower than the first bandwidthutilization threshold, the second bandwidth utilization event associatedwith the monitored aggregate load having reached the second bandwidthutilization threshold; (iv) detecting a third bandwidth utilizationevent when the monitored aggregate load increases to reach the thirdbandwidth utilization threshold higher than the first bandwidthutilization threshold, the third bandwidth utilization event associatedwith the monitored aggregate load having reached the third bandwidthutilization threshold; and (v) detecting a fourth bandwidth utilizationevent when the monitored aggregate load decreases to reach the fourthbandwidth utilization threshold lower than the third bandwidthutilization threshold but higher than the first bandwidth utilizationthreshold, the fourth bandwidth utilization event associated with themonitored aggregate load having reached the fourth bandwidth utilizationthreshold.

Example 33 includes the subject matter of example 32, wherein the firstnotification message indicates the monitored aggregate load has reachedthe first bandwidth utilization threshold, the computer readableinstructions, when executed, cause the processor to adjust the outputbandwidth by controlling a transcoder of the virtual set-top box toencode a data stream for streaming the digital video with a secondarycodec associated with a lower bandwidth than a primary codec of thevirtual set-top box to reduce the output bandwidth for streaming thedigital media, and the computer readable instructions, when executed,further cause the processor to: (i) in response to detecting the secondbandwidth utilization event, (a) send a second notification message fromthe virtual access function to the virtual set-top box, the secondnotification message indicating the monitored aggregate load has reachedthe second bandwidth utilization threshold, and (b) control thetranscoder to switch from the secondary codec to the primary codec toencode the data stream for streaming the digital media; (ii) in responseto detecting the third bandwidth utilization event, (c) send a thirdnotification message from the virtual access function to the virtualset-top box, the third notification message indicating the monitoredaggregate load has reached the third bandwidth utilization threshold,and (d) control the transcoder to encode the data stream for streamingthe digital media with a tertiary codec associated with a lowerbandwidth than the secondary codec to further reduce the outputbandwidth for streaming the digital media; and (iii) in response todetecting the third bandwidth utilization event, (e) send a fourthnotification message from the virtual access function to the virtualset-top box, the fourth notification message indicating the monitoredaggregate load has reached the fourth bandwidth utilization threshold,and (f) control the transcoder to switch from the tertiary codec to thesecondary codec to encode the data stream for streaming the digitalmedia.

Example 34 is a digital video communication system including a physicalset-top box associated with a subscriber location, and a virtualizedcommunication hub implemented by a server cluster. The virtualizedcommunication hub of example 34 includes a virtual set-top box to streamdigital media to the physical set-top box via a broadband access medium,means for monitoring an aggregate load on the broadband access medium todetect bandwidth utilization events, and means for sending a firstnotification message to the virtual set-top box in response to detectinga first bandwidth utilization event, the virtual set-top box to adjustan output bandwidth for streaming the digital media based on the firstnotification message.

Example 35 includes the subject matter of example 34, and furtherincludes means for registering, in response to an access request messagereceived from the virtual set-top box, the virtual set-top box toreceive notification messages prior to the first notification messagebeing sent.

Example 36 includes the subject matter of example 34 or example 35, andfurther includes means for reserving resources of the broadband accessmedium for use by the virtual set-top box to stream the digital media inresponse to a reservation request received from the virtual set-top boxafter the first notification message being sent.

Example 37 includes the subject matter of example 36, and furtherincludes means for responding to detection of a second bandwidthutilization event by adjusting the resources of the broadband accessmedium reserved for use by the virtual set-top box to stream the digitalmedia, and sending a second notification message to the virtual set-topbox, the virtual set-top box to further adjust the output bandwidth forstreaming the digital media based on the second notification message.

Example 38 includes the subject matter of any one of examples 34 to 37,wherein the virtual set-top box is to adjust the output bandwidth forstreaming the digital media based on the first notification message anda profile of a subscriber associated with the virtual set-top box.

Example 39 includes the subject matter of any one of examples 34 to 38,wherein the means for monitoring includes: (i) means for comparing themonitored aggregate load to a plurality of bandwidth utilizationthreshold; (ii) means for detecting the first bandwidth utilizationevent when the monitored aggregate load increases to reach the firstbandwidth utilization threshold, the first bandwidth utilization eventassociated with the monitored aggregate load having reached the firstbandwidth utilization threshold; (iii) means for detecting a secondbandwidth utilization event when the monitored aggregate load decreasesto reach a second bandwidth utilization threshold lower than the firstbandwidth utilization threshold, the second bandwidth utilization eventassociated with the monitored aggregate load having reached the secondbandwidth utilization threshold; (iv) means for detecting a thirdbandwidth utilization event when the monitored aggregate load increasesto reach the third bandwidth utilization threshold higher than the firstbandwidth utilization threshold, the third bandwidth utilization eventassociated with the monitored aggregate load having reached the thirdbandwidth utilization threshold; and (v) means for detecting a fourthbandwidth utilization event when the monitored aggregate load decreasesto reach the fourth bandwidth utilization threshold lower than the thirdbandwidth utilization threshold but higher than the first bandwidthutilization threshold, the fourth bandwidth utilization event associatedwith the monitored aggregate load having reached the fourth bandwidthutilization threshold.

Example 40 includes the subject matter of example 39, wherein the firstnotification message indicates the monitored aggregate load has reachedthe first bandwidth utilization threshold, and further includes: (i)means for adjusting the output bandwidth by controlling a transcoder ofthe virtual set-top box to encode a data stream for streaming thedigital video with a secondary codec associated with a lower bandwidththan a primary codec of the virtual set-top box to reduce the outputbandwidth for streaming the digital media; (ii) means, responsive todetecting the second bandwidth utilization event, for (a) sending asecond notification message from the virtual access function to thevirtual set-top box, the second notification message indicating themonitored aggregate load has reached the second bandwidth utilizationthreshold, and (b) controlling the transcoder to switch from thesecondary codec to the primary codec to encode the data stream forstreaming the digital media; (iii) means, responsive to detecting thethird bandwidth utilization event, for (c) sending a third notificationmessage from the virtual access function to the virtual set-top box, thethird notification message indicating the monitored aggregate load hasreached the third bandwidth utilization threshold, and (d) controllingthe transcoder to encode the data stream for streaming the digital mediawith a tertiary codec associated with a lower bandwidth than thesecondary codec to further reduce the output bandwidth for streaming thedigital media; and (iv) means, in response to detecting the thirdbandwidth utilization event, for (e) sending a fourth notificationmessage from the virtual access function to the virtual set-top box, thefourth notification message indicating the monitored aggregate load hasreached the fourth bandwidth utilization threshold, and (f) controllingthe transcoder to switch from the tertiary codec to the secondary codecto encode the data stream for streaming the digital media.

Although certain example methods, apparatus and articles of manufacturehave been disclosed herein, the scope of coverage of this patent is notlimited thereto. On the contrary, this patent covers all methods,apparatus and articles of manufacture fairly falling within the scope ofthe claims of this patent.

What is claimed is:
 1. A virtualized communication hub implemented by aserver cluster, the virtualized communication hub comprising: a virtualset-top box to stream digital media to a physical set-top box via abroadband access medium; and a virtual access function to: monitor anaggregate load on the broadband access medium to detect bandwidthutilization events; and send a first notification message to the virtualset-top box in response to detecting a first bandwidth utilizationevent, the virtual set-top box to adjust an output bandwidth forstreaming the digital media based on the first notification message.